home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / include / linux / apm_bios.h < prev    next >
C/C++ Source or Header  |  2008-10-24  |  4KB  |  136 lines

  1. #ifndef _LINUX_APM_H
  2. #define _LINUX_APM_H
  3.  
  4. /*
  5.  * Include file for the interface to an APM BIOS
  6.  * Copyright 1994-2001 Stephen Rothwell (sfr@canb.auug.org.au)
  7.  *
  8.  * This program is free software; you can redistribute it and/or modify it
  9.  * under the terms of the GNU General Public License as published by the
  10.  * Free Software Foundation; either version 2, or (at your option) any
  11.  * later version.
  12.  *
  13.  * This program is distributed in the hope that it will be useful, but
  14.  * WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  16.  * General Public License for more details.
  17.  */
  18.  
  19. #include <linux/types.h>
  20.  
  21. typedef unsigned short    apm_event_t;
  22. typedef unsigned short    apm_eventinfo_t;
  23.  
  24. struct apm_bios_info {
  25.     __u16    version;
  26.     __u16    cseg;
  27.     __u32    offset;
  28.     __u16    cseg_16;
  29.     __u16    dseg;
  30.     __u16    flags;
  31.     __u16    cseg_len;
  32.     __u16    cseg_16_len;
  33.     __u16    dseg_len;
  34. };
  35.  
  36.  
  37. /*
  38.  * Power states
  39.  */
  40. #define APM_STATE_READY        0x0000
  41. #define APM_STATE_STANDBY    0x0001
  42. #define APM_STATE_SUSPEND    0x0002
  43. #define APM_STATE_OFF        0x0003
  44. #define APM_STATE_BUSY        0x0004
  45. #define APM_STATE_REJECT    0x0005
  46. #define APM_STATE_OEM_SYS    0x0020
  47. #define APM_STATE_OEM_DEV    0x0040
  48.  
  49. #define APM_STATE_DISABLE    0x0000
  50. #define APM_STATE_ENABLE    0x0001
  51.  
  52. #define APM_STATE_DISENGAGE    0x0000
  53. #define APM_STATE_ENGAGE    0x0001
  54.  
  55. /*
  56.  * Events (results of Get PM Event)
  57.  */
  58. #define APM_SYS_STANDBY        0x0001
  59. #define APM_SYS_SUSPEND        0x0002
  60. #define APM_NORMAL_RESUME    0x0003
  61. #define APM_CRITICAL_RESUME    0x0004
  62. #define APM_LOW_BATTERY        0x0005
  63. #define APM_POWER_STATUS_CHANGE    0x0006
  64. #define APM_UPDATE_TIME        0x0007
  65. #define APM_CRITICAL_SUSPEND    0x0008
  66. #define APM_USER_STANDBY    0x0009
  67. #define APM_USER_SUSPEND    0x000a
  68. #define APM_STANDBY_RESUME    0x000b
  69. #define APM_CAPABILITY_CHANGE    0x000c
  70.  
  71. /*
  72.  * Error codes
  73.  */
  74. #define APM_SUCCESS        0x00
  75. #define APM_DISABLED        0x01
  76. #define APM_CONNECTED        0x02
  77. #define APM_NOT_CONNECTED    0x03
  78. #define APM_16_CONNECTED    0x05
  79. #define APM_16_UNSUPPORTED    0x06
  80. #define APM_32_CONNECTED    0x07
  81. #define APM_32_UNSUPPORTED    0x08
  82. #define APM_BAD_DEVICE        0x09
  83. #define APM_BAD_PARAM        0x0a
  84. #define APM_NOT_ENGAGED        0x0b
  85. #define APM_BAD_FUNCTION    0x0c
  86. #define APM_RESUME_DISABLED    0x0d
  87. #define APM_NO_ERROR        0x53
  88. #define APM_BAD_STATE        0x60
  89. #define APM_NO_EVENTS        0x80
  90. #define APM_NOT_PRESENT        0x86
  91.  
  92. /*
  93.  * APM Device IDs
  94.  */
  95. #define APM_DEVICE_BIOS        0x0000
  96. #define APM_DEVICE_ALL        0x0001
  97. #define APM_DEVICE_DISPLAY    0x0100
  98. #define APM_DEVICE_STORAGE    0x0200
  99. #define APM_DEVICE_PARALLEL    0x0300
  100. #define APM_DEVICE_SERIAL    0x0400
  101. #define APM_DEVICE_NETWORK    0x0500
  102. #define APM_DEVICE_PCMCIA    0x0600
  103. #define APM_DEVICE_BATTERY    0x8000
  104. #define APM_DEVICE_OEM        0xe000
  105. #define APM_DEVICE_OLD_ALL    0xffff
  106. #define APM_DEVICE_CLASS    0x00ff
  107. #define APM_DEVICE_MASK        0xff00
  108.  
  109.  
  110. /*
  111.  * Battery status
  112.  */
  113. #define APM_MAX_BATTERIES    2
  114.  
  115. /*
  116.  * APM defined capability bit flags
  117.  */
  118. #define APM_CAP_GLOBAL_STANDBY        0x0001
  119. #define APM_CAP_GLOBAL_SUSPEND        0x0002
  120. #define APM_CAP_RESUME_STANDBY_TIMER    0x0004 /* Timer resume from standby */
  121. #define APM_CAP_RESUME_SUSPEND_TIMER    0x0008 /* Timer resume from suspend */
  122. #define APM_CAP_RESUME_STANDBY_RING    0x0010 /* Resume on Ring fr standby */
  123. #define APM_CAP_RESUME_SUSPEND_RING    0x0020 /* Resume on Ring fr suspend */
  124. #define APM_CAP_RESUME_STANDBY_PCMCIA    0x0040 /* Resume on PCMCIA Ring    */
  125. #define APM_CAP_RESUME_SUSPEND_PCMCIA    0x0080 /* Resume on PCMCIA Ring    */
  126.  
  127. /*
  128.  * ioctl operations
  129.  */
  130. #include <linux/ioctl.h>
  131.  
  132. #define APM_IOC_STANDBY        _IO('A', 1)
  133. #define APM_IOC_SUSPEND        _IO('A', 2)
  134.  
  135. #endif    /* LINUX_APM_H */
  136.